Repository navigation
fix: 描画まわりのレビュー指摘(#7・#10・#11・#12)を修正 - #62
Merged
Merged
Conversation
…mal halves - Track built state of the connected-glass mesh caches with explicit flags. The old check looked at a face that is never generated for some axes, so the meshes were rebuilt on every bake (review #11). - Clear the static mesh caches whenever models are (re)loaded, so meshes with baked UVs are not reused after the texture atlas changes (review #12). - Return early from the connected-glass model when neither half is glass, skipping the neighbour scan and allocations (review #10). - Scene capture: wait until the number of built chunks stops changing before shooting or measuring, and add material-pair reference shots.
The face where the two halves touch was hidden whenever both halves had the same DoubleSlabVariant, but NON_OPAQUE groups different materials (leaves, glowstone, ...). A glowstone half under a leaf half lost its top face, so the ground showed through the leaves (review #7). Now the face is drawn exactly when the same two blocks stacked as full blocks would draw it: hidden under an opaque block or between matching glass, visible otherwise. A GameTest compares 100 material pairs against full blocks placed in the world.
shouldDrawSide runs for every face of every block while building chunk meshes. Check the block type before touching the world or block entities. Scene capture: allow fixing the FPS cap with -Dslabee.scene.maxFps and disable autosave while capturing.
Light propagation runs after blocks are placed. Shooting before it ends made the ground shading around double slabs differ from run to run.
Disabling saving appears to make chunks that are unloaded while the camera moves come back with recomputed light, so the ground shading differed between runs. Under investigation; determinism check in progress.
This was referenced Oct 24, 2026
Yuru-Yurufu
changed the base branch from
feature/double-slab-lighting
to
main
October 24, 2026 16:57
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
Astra(Codex)のコードレビューの描画まわりの指摘 #7・#10・#11・#12 を直しました。PR #61 の上に積んでいます。
変更
DoubleSlabVariant)の一致で決めていた。NON_OPAQUEには葉・グロウストーンなど別の素材が混ざるため、葉の下のグロウストーンの上面が消え、葉の隙間から地面が見えていた。→ 「同じ並びを通常ブロックで作ったら、その面は見えるか」をそのまま使う判定に変更(
DoubleSlabUtils#shouldDrawInnerFace)。上が不透明なら見えない、同じガラスどうしなら見えない、それ以外は見える。pair_XX)を追加。テスト
InnerFaceGameTests:素材10種類の総当たり(100通り)で、通常ブロックを実際に上下に置いたときの面の見え方と、ダブルハーフの内側の面の見え方が一致することを確かめる。見た目(
runSceneで前のコミットと比較)128枚中、違いは
pair_00(上=葉・下=グロウストーン)とpair_01(上=グロウストーン・下=葉)の2枚だけ。どちらも、通常ブロックで組んだ隣の比較対象と同じ見た目になった。Generated by Claude Code